package small.common.designPattern.behavioral.chainOfResponsibility.slotchain;

/**
 * 执行器槽
 */
public interface ProcessorSlot<T> {

    /**
     * 进入执行器
     * @param resource
     */
    void entry(T resource)throws Throwable;

    /**
     * 进入下一个执行器
     * @param resource
     */
    void fireEntry(Object resource)throws Throwable;

    /**
     * 退出执行器
     * @param resource
     */
    void exit(T resource)throws Throwable;

    /**
     * 退出下一个执行器
     * @param resource
     */
    void fireExit(Object resource)throws Throwable;
}
